GtkTextHandle: Use min-width/min-height
authorTimm Bäder <mail@baedert.org>
Tue, 4 Oct 2016 19:13:29 +0000 (21:13 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 16 Oct 2016 16:17:21 +0000 (18:17 +0200)
instead of GtkWidget's text-handle-width/text-handle-height style
properties

gtk/gtktexthandle.c

index cc98d226a01217ebc9d4c170375bd37c601311cf..4e9e359a5d0577ee279ad8c1f81801da52ab19ca 100644 (file)
@@ -76,24 +76,27 @@ static void _gtk_text_handle_update (GtkTextHandle         *handle,
                                      GtkTextHandlePosition  pos);
 
 static void
-_gtk_text_handle_get_size (GtkTextHandle *handle,
-                           gint          *width,
-                           gint          *height)
+_gtk_text_handle_get_size (GtkTextHandle         *handle,
+                           GtkTextHandlePosition  pos,
+                           gint                  *width,
+                           gint                  *height)
 {
-  GtkTextHandlePrivate *priv;
-  gint w, h;
+  GtkTextHandlePrivate *priv = handle->priv;
+  GtkWidget *widget = priv->windows[pos].widget;
+  GtkStyleContext *context;
 
-  priv = handle->priv;
+  context = gtk_widget_get_style_context (widget);
+
+  gtk_style_context_get (context,
+                         gtk_style_context_get_state (context),
+                         "min-width",
+                         width, NULL);
 
-  gtk_widget_style_get (priv->parent,
-                        "text-handle-width", &w,
-                        "text-handle-height", &h,
-                        NULL);
-  if (width)
-    *width = w;
 
-  if (height)
-    *height = h;
+  gtk_style_context_get (context,
+                         gtk_style_context_get_state (context),
+                         "min-height",
+                         height, NULL);
 }
 
 static void
@@ -110,7 +113,7 @@ _gtk_text_handle_draw (GtkTextHandle         *handle,
   handle_window = &priv->windows[pos];
 
   context = gtk_widget_get_style_context (handle_window->widget);
-  _gtk_text_handle_get_size (handle, &width, &height);
+  _gtk_text_handle_get_size (handle, pos, &width, &height);
 
   cairo_save (cr);
   cairo_translate (cr, handle_window->border.left, handle_window->border.top);
@@ -232,7 +235,7 @@ gtk_text_handle_widget_event (GtkWidget     *widget,
 
       window = gtk_widget_get_parent (priv->windows[pos].widget);
       gtk_widget_get_allocation (priv->windows[pos].widget, &allocation);
-      _gtk_text_handle_get_size (handle, &handle_width, &handle_height);
+      _gtk_text_handle_get_size (handle, pos, &handle_width, &handle_height);
 
       _gtk_window_get_popover_position (GTK_WINDOW (window),
                                         priv->windows[pos].widget,
@@ -383,7 +386,7 @@ _gtk_text_handle_update (GtkTextHandle         *handle,
       gint w, h;
 
       _gtk_text_handle_ensure_widget (handle, pos);
-      _gtk_text_handle_get_size (handle, &width, &height);
+      _gtk_text_handle_get_size (handle, pos, &width, &height);
 
       border->top = height;
       border->bottom = height;